# -*- coding: utf-8 -*-
"""
@Time ： 2023/10/17 1:22
@Auth ： y.h
@File ：numpy_calculation_controller.py
@IDE ：PyCharm
@Motto：The sooner you start to code, the longer the program will take. —— Roy Carlson
"""

import numpy
import pandas

from pythonProjectTemplate.Service.DataCleansing.numpy_calculation import pandas_numpy_conversion, \
    many_col_row_iter_calculation, many_row_and_row_iter_calculation, single_valued_matrix_calculation


# todo 矩阵迭代运算由于数据量庞大,无法对数据进一步封装,使用的时候需要自行定位
# todo 当 A = [[1,2,3],[4,5,6],[7,8,9]] B = [[1,2],[5,6]] 执行A与B的矩阵迭代运算  结果数量则有 rank(B) 个 数据个数则为 rank(A) * rank(B)
class 矩阵运算:

    def pandas与numpy矩阵数组转换(self,data_arr):
        return pandas_numpy_conversion(data_arr)

    # todo 最好不要表与表计算,容易内存溢出
    def 多行与多列迭代运算(self,properties):
        return many_col_row_iter_calculation(properties)

    def 多行与多行迭代运算(self,properties):
        return many_row_and_row_iter_calculation(properties)

    def 单值矩阵运算(self,properties):
        return single_valued_matrix_calculation(properties)
